﻿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;

namespace SageKing.Core.Contracts;

public interface ISageKingFilterModel
{
    public string FieldName { get; }

    public int ColumnIndex { get; }

    public IEnumerable<string> SelectedValues { get; }

    public IList<SageKingFilter> Filters { get; }

    public IQueryable<TItem> FilterList<TItem>(IQueryable<TItem> source);

    public Expression<Func<TItem, bool>> FilterExpression<TItem>();

    internal void BuildGetFieldExpression<TItem>();
}
